﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//int main()
//{
//	printf("%s\n", __FILE__);
//	printf("%d\n", __LINE__);
//	printf("%s\n", __DATE__);
//	printf("%s\n", __TIME__);
//	 
//	return 0;
//}

//#define CASE break;case
//int main()
//{
//	int n = 0;
//	switch (n)
//	{
//	case 1:
//	CASE 2 :
//	CASE 3 :
//	CASE 4 : 
//
//	}
//
//	return 0;
//}

//#define定义标识符时候，要不要在最后加上；呢？
//#define MAX 1000;
//int main()
//{
//	int m = MAX;
//	//最后一个分号，相当于多了一条语句
//	//int m=1000;;
//	printf("%d\n", m);
//
//	return 0;
//}

//这种情况下就会出现问题
//#define MAX 1000;
//int main()
//{
//	int m = 0;
//	//此时if语句后面跟了两条语句，但是if语句后面没有大括号，只能跟一条语句
//	if (m >= 0)
//		m = MAX;
//	//m=1000;;(替换) 
//	else
//		m = -1
//
//	printf("%d\n", m);
//
//	return 0;
//}


#define SQUARE(X) ((X)*(X))//不要吝啬（）

int main()
{
	//printf("%d\n", SQUARE(5));
	//此代码存在小问题的
	//例如
	printf("%d\n", SQUARE(5 + 1));//结果是11
	//这是因为#define定义的宏 是替换的，上面代码可以写成
	//printf("%d\n",5+1*5+1);//所以不要吝啬（）

	

	return 0;
}

